// pages/profile/index.ts
Page({

  /**
   * 页面的初始数据
   */
  data: {
    userInfo: {
      nickName: '',
      avatar: ''
    }
  },
  onLoad() {
    this.getUserInfo()
  },
  // 获取用户信息接口
  async getUserInfo() {
    // 请求数据接口
    const { data: userInfo, code } = await wx.http.get('/userInfo')
    // console.log(userInfo, '获取的用户信息');
    // 校验数据是否合法
    if (code !== 10000) return wx.utils.toast()
    // 设置数据，更新渲染
    this.setData({
      userInfo
    })
  },


  // 监听 blur 事件，获取昵称内容
  async getUserNickName(ev) {
    console.log(ev.detail.value)
    // 将用户昵称存到数据中，为了将来使用
    this.setData({ 'userInfo.nickName': ev.detail.value })
    // 将用户输入的微信昵称，发送请求，保存到后端
    const res = await wx.http.put('/userInfo', {
      nickName: this.data.userInfo.nickName
    })
    console.log(res);
  },
  // 监听 chooseavatar 事件，获取头像地址
  getUserAvatar(ev) {
    // ev.detail.avatarUrl 是临时地址，只能在小程序中使用
    // console.log(ev.detail.avatarUrl)
    this.setData({
      'userInfo.avatar': ev.detail.avatarUrl
    })
    // 调用接口，上传文件
    wx.uploadFile({
      // 开发者服务器地址
      url: wx.http.baseURL + '/upload',
      // 要上传文件资源的路径（本地路径）
      filePath: ev.detail.avatarUrl,
      // 文件对应的key,开发者在服务端可以通过这个key，获取文件的二进制内容
      name: 'file',
      header: {
        Authorization: getApp().token
      },
      // formData HTTP请求中其他额外的 form data
      formData: {
        type: 'avatar'
      },
      // 接口调用成功的回调函数
      success: (res) => {
        // 转换 json 数据
        const data = JSON.parse(res.data)
        // 检测接口调用结果
        if (data.code !== 10000) return wx.utils.toast()
      }
    })
  }
})